15-5 {XO@Gp-code

一般的 M 檔案都是文字檔,因此所有的 MATLAB 原始程式碼都看得到,若您想要讓別人使用您的程式碼,但卻又不想讓別人看到程式碼的內容,哪麼就可以使用 pcode 指令將底稿或函式轉成 p-code(即Pseudo-Code),其格式如下:

pcode filename.m

例如,我們可將函式 func5.m 轉成 p-code:

>> pcode func5.m >> dir *.p func5.p

此時檢視 func5 的來源,MATLAB 會以 p-code 的程式碼為優先:

>> which func5 D:\matlabBook\MATLAB程式設計:入門篇\15-M檔案\func5.p

呼叫 p-code 的函式和一般函式並無兩樣:

>> func5([2 4 8]) ans = 0.8750

除了保護智慧財產權外,pcode 指令的另一個功能是可以提高程式的效率。當一函式被呼叫時,MATLAB 會載入並剖析(Parse)此函式,並將剖析結果存放置在記憶體內,因此當下次再呼叫此函式時,就可以省下剖析所花的時間。pcode 的作用即是將程式碼以剖析後的結果來儲存,因此如果您的程式碼牽涉到很多 M 檔案時(例如大型的圖形使用者介面應用程式),即可使用 pcode 指令來將程式碼轉成 p-code,以節省剖析的時間。(由於 MATLAB 花在函式載入及剖析的時間相當少,因此如果您的程式碼不牽涉到很多 M 檔案,大可不用 pcode 指令。)


MATLAB程式設計:入門篇